/**
 * 根据code查找菜单树中对应节点的最上层根节点
 * @param menuList - 菜单列表数组（树形结构）
 * @param targetCode - 目标菜单代码
 * @returns 找到的根节点菜单信息或null
 */
export const useFindRootMenuByCode = (menuList: any[], targetCode: string): any | null => {
  /**
   * 递归查找目标节点并返回路径
   * @param menus - 当前层级的菜单列表
   * @param code - 目标代码
   * @param path - 当前路径（从根到当前节点）
   * @returns 找到目标节点时返回完整路径，否则返回null
   */
  const findNodePath = (menus: any[], code: string, path: any[] = []): any[] | null => {
    for (const menu of menus) {
      const currentPath = [...path, menu];
      
      // 如果找到目标节点，返回完整路径
      if (menu.code === code) {
        return currentPath;
      }
      
      // 如果有子节点，递归查找
      if (menu.children && menu.children.length > 0) {
        const result = findNodePath(menu.children, code, currentPath);
        if (result) {
          return result;
        }
      }
    }
    return null;
  };

  // 查找目标节点的完整路径
  const nodePath = findNodePath(menuList, targetCode);
  
  // 如果找到路径，返回第一个节点（根节点）
  if (nodePath && nodePath.length > 0) {
    return nodePath[0];
  }
  
  return null;
};